<?php
require './functions.php';
ReadConfig ('DEVINFO, ADMINS');

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-Type: text/html; charset=Windows-1251");

Auth();

GetVar('mode');

if (empty($mode)) {
    ?><HTML>
<HEAD>
    <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY class="body_main">
    <TABLE WIDTH="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
    <tr><td class="header" colspan="2"> :</td></tr>
    <tr>
    <td class="firstrow" width="15%">
    <A HREF="<?=$_SERVER['PHP_SELF']?>?mode=main"> </A></td>
    <td class="secondrow">   .<BR></td></tr>
    <tr>
    <td class="firstrow">
    <A HREF="<?=$_SERVER['PHP_SELF']?>?mode=adminlist">AdminList</A></td>
    <td class="secondrow">     .<BR></td></tr>
    <tr>
    <td class="firstrow">
    <A HREF="<?=$_SERVER['PHP_SELF']?>?mode=whitelist">WhiteList</A></td>
    <td class="secondrow">" " IP-,        .<BR>
    </td></tr>
    <tr>
    <td class="firstrow">
    <A HREF="<?=$_SERVER['PHP_SELF']?>?mode=blacklist">BlackList</A></td>
    <td class="secondrow">" " IP-,        .<BR>
    </td></tr>
    <tr>
    <td class="firstrow">
    <A HREF="<?=$_SERVER['PHP_SELF']?>?mode=reflist">RefList</A></td>
    <td class="secondrow">  (,           ).<BR>
    </td></tr>
    <tr>
    <td class="firstrow">
    <A HREF="<?=$_SERVER['PHP_SELF']?>?mode=filelist&action=list&cat=files"> </A></td>
    <td class="secondrow"> ,   ,       .<BR> 
</td></tr></table>
</BODY>
</HTML><?php
    exit;
} elseif ($mode == 'main') {
    GetVar('action');
    if (empty($action)) {
        ReadConfig ('MAIN');
        ?><HTML>
<HEAD>
     <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY>
    <TABLE WIDTH="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
    <tr><td class="header">Main Settings</td></tr>
    <tr>
    <td class="firstrow">
    <FORM ACTION="<?=$_SERVER['PHP_SELF']?>?mode=main" METHOD="POST">
    <INPUT TYPE="hidden" NAME="action" VALUE="save">
    URL ,      "" :<BR>
    <INPUT TYPE="text" NAME="url" VALUE="<?=$MAIN['url']?>" SIZE="50"><BR>
    </td></tr>
    <tr><td class="secondrow"> 
    URL    (   !):<BR>
    <INPUT TYPE="text" NAME="antileechurl" VALUE="<?=$MAIN['antileechurl']?>" SIZE="50"><BR>
    </td></tr>
    <tr><td class="firstrow"> 
         (   -,       ):
    <INPUT TYPE="text" NAME="filepath" VALUE="<?=$MAIN['filepath']?>" SIZE="50"><BR>
    </td></tr>
    <tr><td class="secondrow"> 
        MySQL:<BR>
    <INPUT TYPE="text" NAME="db_address" VALUE="<?=$MAIN['db_address']?>" SIZE="50"><BR>
    </td></tr>
    <tr><td class="firstrow"> 
          MySQL:<BR>
    <INPUT TYPE="text" NAME="db_username" VALUE="<?=$MAIN['db_username']?>" SIZE="50"><BR>
    </td></tr>
    <tr><td class="secondrow"> 
         MySQL:<BR>
    <INPUT TYPE="text" NAME="db_password" VALUE="<?=$MAIN['db_password']?>" SIZE="50"><BR>
    </td></tr>
    <tr><td class="firstrow"> 
         MySQL:<BR>
    <INPUT TYPE="text" NAME="db_database" VALUE="<?=$MAIN['db_database']?>" SIZE="50"><BR>
    </td></tr>
    <tr><td class="secondrow"> 
           MySQL:<BR>
    <INPUT TYPE="text" NAME="db_table" VALUE="<?=$MAIN['db_table']?>" SIZE="50"><BR>
    </td></tr>
    <tr><td class="firstrow"> 
        ( ):<BR>
    <INPUT TYPE="text" NAME="timeout" VALUE="<? echo $MAIN['timeout']/(60*60) ?>" SIZE="5"><BR>
    </td></tr>
    <tr><td class="secondrow"> 
         (  ):<BR>
    <INPUT TYPE="text" NAME="maxtotalthreads" VALUE="<?=$MAIN['maxtotalthreads']?>" SIZE="5"><BR>
    </td></tr>
    <tr><td class="firstrow"> 
        (  ):<BR>
    <INPUT TYPE="text" NAME="maxthreadspersession" VALUE="<?=$MAIN['maxthreadspersession']?>" SIZE="5"><BR>
    </td></tr>
    <tr><td class="secondrow"> 
        (  ,   ):<BR>
    <INPUT TYPE="text" NAME="maxkbps" VALUE="<?=$MAIN['maxkbps']?>" SIZE="5"><BR>
    </td></tr>
    <tr><td class="firstrow"> 
           ( ,     ):<BR>
    <TEXTAREA COLS="5" ROWS="10" NAME="forbiddensymbols"><? echo implode("\n", $MAIN['forbiddensymbols']) ?></TEXTAREA><BR>
    <br />
    </td></tr>
    <tr><td class="secondrow"> 
    <INPUT TYPE="submit" VALUE="">
    </FORM>
    </td></tr>
    </table>
</BODY>
</HTML><?php
        exit;
    } elseif ($action == 'save') {
        GetVar(array('url', 'filepath', 'db_address', 'db_username', 'db_password', 'db_database', 'db_table', 'timeout', 'maxtotalthreads', 'maxthreadspersession', 'maxkbps', 'forbiddensymbols', 'antileechurl'));
        $MAIN['url']                = !empty($url) ? $url : $DEVINFO['homepage'];
        $MAIN['antileechurl']       = !empty($antileechurl) ? $antileechurl : 'http://'.$_SERVER['SERVER_ADDR']. ( (substr(dirname($_SERVER['SCRIPT_NAME']), -1) == '/') ? dirname($_SERVER['SCRIPT_NAME']) : dirname($_SERVER['SCRIPT_NAME']).'/');
        $MAIN['filepath']           = !empty($filepath) ? $filepath : './filez/';    //  
        $MAIN['db_address']         = !empty($db_address) ? $db_address : 'localhost'; // mySQL 
        $MAIN['db_username']        = !empty($db_username) ? $db_username : 'root';    //  mySQl
        $MAIN['db_password']        = !empty($db_password) ? $db_password : 'test';    //  mySQL
        $MAIN['db_database']        = !empty($db_database) ? $db_database : 'test';    // mySQL
        $MAIN['db_table']           = !empty($db_table) ? $db_table : 'antileech';
        $MAIN['timeout']            = !empty($timeout) ? intval($timeout) * 60 * 60 : 60*60*24;
        $MAIN['maxtotalthreads']    = !empty($maxtotalthreads) ? intval($maxtotalthreads) : 0;
        $MAIN['maxthreadspersession'] = !empty($maxthreadspersession) ? intval($maxthreadspersession) : 2;
        $MAIN['maxkbps']            = isset($maxkbps) ? doubleval($maxkbps) : 15;
        $forbiddensymbols           = !empty($forbiddensymbols) ? explode("\n", $forbiddensymbols) : array ("'", '"', '\\', '/', '*', ',', '`', '|', '#', '$', '!', '@');
        foreach ($forbiddensymbols as $key=>$val) $MAIN['forbiddensymbols'][$key] = trim($val);
        WriteConfig('MAIN', $MAIN);
        mess ('  MAIN  !', $_SERVER['PHP_SELF']);
    }

} elseif ($mode == 'adminlist') {
    GetVar('action');
    if (empty($action)) {
        $insert = "<SELECT NAME=\"admin\" STYLE=\"WIDTH: 200px;\">\n";
        if (empty($ADMINS)) {
            $insert .= "<OPTION VALUE=\"\">[ ]</OPTION>";
        } else {
            foreach (array_keys($ADMINS) as $admin) $insert .="<OPTION VALUE=".$admin.">".$admin."</OPTION>\n";
        }
        $insert .= "</SELECT>\n";
        ?><HTML>
<HEAD>
       <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css"></HEAD>
<BODY>
    <TABLE WIDTH="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
    <tr><td class="header">Administrators</td></tr>
    <tr>
    <td class="firstrow">
    <FORM ACTION="<?=$_SERVER['PHP_SELF']?>" METHOD="POST">
    <INPUT TYPE="hidden" NAME="mode" VALUE="adminlist">
    <INPUT TYPE="hidden" NAME="action" VALUE="change">
     :<BR>
    </td></tr>
    <tr><td class="secondrow"> 
    <?=$insert?><BR>   
   </td></tr>
    <tr><td class="firstrow"> 
    <INPUT TYPE="submit" NAME="ChangePass" VALUE=" " STYLE="WIDTH: 200px;"><BR><br>
    <INPUT TYPE="submit" NAME="delete" VALUE="" STYLE="WIDTH: 200px;" OnClick="return confirm(' ,     ?');">
    </FORM><br><br/>
    </td></tr>
    <tr><td class="secondrow"> 
    <A HREF="<?=$_SERVER['PHP_SELF']?>?mode=adminlist&action=add">  </A>
    </td></tr>
    </table>
</BODY>
</HTML><?php
        exit;
    } elseif ($action == 'change') {
        GetVar('admin');
        if (!isset($ADMINS[$admin])) {
            mess ('  : '.$admin.'!');
        }
        if (!empty($_POST['delete'])) {
            unset($ADMINS[$admin]);
            WriteConfig('ADMINS', $ADMINS);
            mess (' '.$admin.'  !', $_SERVER['PHP_SELF']);
        }
        ?><HTML>
<HEAD>
      <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css"></HEAD>
<BODY>
    <TABLE WIDTH="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
    <tr><td class="header">Change password</td></tr>
    <tr>
    <td class="firstrow">
    <FORM ACTION="<?=$_SERVER['PHP_SELF']?>" METHOD="POST">
    <INPUT TYPE="hidden" NAME="mode" VALUE="adminlist">
    <INPUT TYPE="hidden" NAME="admin" VALUE="<?=$admin?>">
    <INPUT TYPE="hidden" NAME="action" VALUE="savepass">
      :<BR>
    </td></tr>
    <tr><td class="secondrow">
    <INPUT TYPE="password" NAME="newpass" SIZE="50"><BR>
    </td></tr>
    <tr><td class="firstrow"> 
    <INPUT TYPE="submit" VALUE=" ">
    </FORM>
    </td></tr>
    </table>
</BODY>
</HTML><?php
        exit;

    } elseif ($action == 'savepass') {
        GetVar(array('admin', 'newpass'));
        if (!isset($ADMINS[$admin])) {
            mess ('  : '.$admin.'!');
        }
        if (empty($newpass)) {
            mess ('   !');
        }
        $ADMINS[$admin] = MD5($newpass);
        WriteConfig('ADMINS', $ADMINS);
        mess ('   '.$admin.'  !', $_SERVER['PHP_SELF']);

    } elseif ($action == 'add') {
        ?><HTML>
<HEAD>
     <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css"></HEAD>
<BODY>
    <TABLE WIDTH="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
    <tr><td class="header">Add new administrator</td></tr>
    <tr>
    <td class="firstrow">
    <FORM ACTION="<?=$_SERVER['PHP_SELF']?>?mode=adminlist" METHOD="POST">
    <INPUT TYPE="hidden" NAME="action" VALUE="savenew">
     :<BR>
    <INPUT TYPE="text" NAME="adminname" SIZE="50">
    </td></tr>
    <tr><td class="secondrow">
    :<BR>
    <INPUT TYPE="password" NAME="password" SIZE="50"><BR>
    </td></tr>
    <tr><td class="firstrow"> 
    <INPUT TYPE="submit" VALUE="">
    </FORM>
    </td></tr>
    </table>
</BODY>
</HTML><?php
        exit;
    } elseif ($action == 'savenew') {
        GetVar (array('adminname', 'password'));
        if (empty($adminname)) {
            mess ('   !');
        }
        if (empty($password)) {
            mess ('  !');
        }
        if (isset($ADMINS[$adminname])) {
            mess ('     !');
        }
        $ADMINS[$adminname] = MD5($password);
        WriteConfig('ADMINS', $ADMINS);
        mess ('  '.$adminname.'  !', $_SERVER['PHP_SELF']);
    }

} elseif ($mode == 'whitelist') {
    GetVar('action');
    if (empty($action)) {
        ReadConfig ('WHITELIST');
        ?><HTML>
<HEAD>
      <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css"></HEAD>
<BODY>
    <TABLE WIDTH="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
    <tr><td class="header">White List</td></tr>
    <tr>
    <td class="firstrow">
    <FORM ACTION="<?=$_SERVER['PHP_SELF']?>?mode=whitelist" METHOD="POST">
    <INPUT TYPE="hidden" NAME="action" VALUE="save">
     IP-,        <BR>
    (IP-  ,     .)<BR>( ,  192.168.0.0-192.168.0.255):<BR>
    </td></tr>
    <tr><td class="secondrow">
    <TEXTAREA COLS="40" ROWS="10" NAME="whitelist"><? echo implode("\n", $WHITELIST) ?></TEXTAREA><BR>
    </td></tr>
    <tr><td class="firstrow">
    <INPUT TYPE="submit" VALUE="">
    </FORM>
    </td></tr>
    </table>
</BODY>
</HTML><?php
        exit;
    } elseif ($action == 'save') {
        GetVar('whitelist');
        $whitelist = explode("\n", $whitelist);
        foreach ($whitelist as $key=>$val) $WHITELIST[$key] = trim($val);
        WriteConfig('WHITELIST', $WHITELIST);
        mess ('  WHITELIST  !', $_SERVER['PHP_SELF']);
    }

} elseif ($mode == 'blacklist') {
    GetVar('action');
    if (empty($action)) {
        ReadConfig ('BLACKLIST');
        ?><HTML>
<HEAD>
     <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css"></HEAD>
<BODY>
    <TABLE WIDTH="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
    <tr><td class="header">Black List</td></tr>
    <tr>
    <td class="firstrow">
    <FORM ACTION="<?=$_SERVER['PHP_SELF']?>?mode=blacklist" METHOD="POST">
    <INPUT TYPE="hidden" NAME="action" VALUE="save">
     IP-,      <BR>
    (IP-  ,     .)<BR>( ,  192.168.0.0-192.168.0.255):<BR>
    </td></tr>
    <tr><td class="secondrow">
    <TEXTAREA COLS="40" ROWS="10" NAME="blacklist"><? echo implode("\n", $BLACKLIST) ?></TEXTAREA><BR>
    </td></tr>
    <tr><td class="firstrow">
    <INPUT TYPE="submit" VALUE="">
    </FORM>
    </td></tr>
    </table>
</BODY>
</HTML><?php
        exit;
    } elseif ($action == 'save') {
        GetVar('blacklist');
        $blacklist = explode("\n", $blacklist);
        foreach ($blacklist as $key=>$val) $BLACKLIST[$key] = trim($val);
        WriteConfig('BLACKLIST', $BLACKLIST);
        mess ('  BLACKLIST  !', $_SERVER['PHP_SELF']);
    }

} elseif ($mode == 'reflist') {
    GetVar('action');
    if (empty($action)) {
        ReadConfig ('REFLIST');
        ?><HTML>
<HEAD>
     <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css"></HEAD>
<BODY>
    <TABLE WIDTH="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
    <tr><td class="header">Free of protection Refferal List</td></tr>
    <tr>
    <td class="firstrow">
    <FORM ACTION="<?=$_SERVER['PHP_SELF']?>?mode=reflist" METHOD="POST">
    <INPUT TYPE="hidden" NAME="action" VALUE="save">
     ,       <BR>
    (DNS-   "www."):<BR>
        </td></tr>
    <tr><td class="secondrow">
    <TEXTAREA COLS="20" ROWS="10" NAME="reflist"><? echo implode("\n", $REFLIST) ?></TEXTAREA><BR/>
    </td></tr>
    <tr><td class="firstrow">
    <INPUT TYPE="submit" VALUE="">
    </FORM>
     </td></tr>
    </table>
</BODY>
</HTML><?php
        exit;
    } elseif ($action == 'save') {
        GetVar('reflist');
        $reflist = explode("\n", $reflist);
        foreach ($reflist as $key=>$val) $REFLIST[$key] = trim($val);
        WriteConfig('REFLIST', $REFLIST);
        mess ('  REFLIST  !', $_SERVER['PHP_SELF']);
    }

} elseif ($mode == 'filelist') {
    ReadConfig ('MAIN');
    GetVar ('action');
    if (empty($action)) {
        $categories = GetCatList();
        $insert = "<SELECT NAME=\"cat\">\n";
        if (empty($categories)) {
            $insert .= "<OPTION VALUE=\"\">[ ]</OPTION>";
        } else {
            foreach ($categories as $cat) $insert .="<OPTION VALUE=".$cat.">".ucfirst($cat)."</OPTION>\n";
        }
        $insert .= "</SELECT>\n";
        ?><HTML>
<HEAD>
    <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css"></HEAD>
<BODY>
    <FORM ACTION="<?=$_SERVER['PHP_SELF']?>" METHOD="GET">
    <INPUT TYPE="hidden" NAME="mode" VALUE="filelist">
    <INPUT TYPE="hidden" NAME="action" VALUE="list">
     :<BR>
    <?=$insert?><BR>
    <INPUT TYPE="submit" VALUE="">
    </FORM>
</BODY>
</HTML><?php
        exit;
    } elseif ($action == 'list') {
        GetVar('cat');
        $files = GetFileList($cat);
        $rows = '';
        foreach ($files as $file) {
            $rows .= "<TR>\n".
            "<TD class=\"secondrow\"><INPUT TYPE=\"checkbox\" NAME=\"filestolist[]\" VALUE=\"".$file."\" TITLE=\"      &quot; &quot;  \"></TD>\n".
            "<TD class=\"firstrow\" width=\"40%\"><A HREF=\"leech?cat=".urlencode($cat)."&file=".urlencode($file)."\">".$file."</A></TD>\n".
            "<TD class=\"secondrow\">".human_readable(filesize($MAIN['filepath'].$cat.'/'.$file))."</TD>\n".
            "</TR>\n";
        }
        ?><HTML>
<HEAD>
     <TITLE>-</TITLE>
<link href="../css/go.css" rel="stylesheet" type="text/css"></HEAD>
<BODY>
    <FORM ACTION="<?=$_SERVER['PHP_SELF']?>" NAME="fileform" METHOD="POST">
    <INPUT TYPE="hidden" NAME="mode" VALUE="filelist">
    <INPUT TYPE="hidden" NAME="action" VALUE="listfiles">
    <INPUT TYPE="hidden" NAME="cat" VALUE="<?=$cat?>">
    <TABLE WIDTH="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
    <TR>
<TD WIDTH="1%" class="header">----</TD>
<TD class="header"></TD>
<TD class="header"></TD>
</TR>
    <?=$rows?>
 
   <br />
    <TR>
<TD class="firstrow" colspan="3">
    <INPUT TYPE="submit" VALUE=" ">
</td></tr>
   </TABLE>
    </FORM>
</BODY>
</HTML><?php
        exit;
    } elseif ($action == 'listfiles') {
        GetVar(array('cat', 'filestolist'));
        $MAIN['antileechurl'] = empty($MAIN['antileechurl']) ? 'http://localhost/anti/' : $MAIN['antileechurl'];
            echo "<HTML><HEAD><TITLE>-</TITLE><link href=\"../css/go.css\" rel=\"stylesheet\" type=\"text/css\">
         <script>
 function doselect(obj){
  parent.document.all('url').value=obj.title;
  this.close();
  return false;
 }
</script> 
           </HEAD><BODY><table WIDTH=\"100%\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\" class=\"tableborder\">
            <tr><td class=\"header\">Links to files</td></tr>"; 
       foreach ($filestolist as $file) {
            echo "<tr><td class=\"firstrow\">";
            echo '<a href="#" onclick="window.opener.document.kform[\'url\'].value=this.title; window.close();"
 title="'.$MAIN['antileechurl'].'leech?cat='.$cat.'&file='.$file.'">'.$MAIN['antileechurl'].'leech?cat='.$cat.'&file='.$file.'</a>'.NL;          echo "</td></tr>";
        }
     echo"</table></BODY></HTML>";    
}

} elseif ($mode == 'redirect') {
    GetVar ('url');
    header('Location: '.$url);
    exit;
}

?>